package com.lfy.ch06;


/**
 * 订单业务： 业务逻辑，和 线程执行逻辑无关；
 * 其他很多人可能都会调用 OrderService 的 createOrder 方法；
 * 线程不是越多越好。合适就行。 cpu核心数 2~4 倍 是个合适区间。
 * 【虚拟线程】不参与CPU的时间片调度。由 JVM 负责调度。
 */
public class OrderService {


    // 不要关心自己要开多少线程。 开100w都没有问题。最后会用线程池统一控制
    // 关心的是： 业务需不需要后台运行（不卡住当前逻辑）
    // 业务：【用户注册】；
    // 1、用户提交信息（账号、密码、验证码）
    // 2、后台验证用户提交的信息是否正确
    // 3、用户信息保存
    // 4、【后台运行】给用户发送短信，通知他注册成功(后台发，不卡住当前逻辑，用户就能看到成功提示) 2s
    // 5、用户就能看到成功提示
    // 等结果就不要开线程，开线程就别想着要结果。【不重要、不等待】

    // 线程太多CPU就爆了， 1-100w 每个线程都感觉很慢
    // 执行 5s； 线程开多了就快吗？  不快：1   快：2
    public String createOrder() {
        //1、获取到用户信息
        String userName = "张三";
        //2、获取到商品信息
        String productName = "小米手机"; // 可能得去别的地方联网查询
        //3、获取到派送地址
        String address = "北京市";
        //4、生成订单信息
        return "用户：" + userName + ", 商品：" + productName + ", 地址：" + address;
    }
}
